package o2o.dao.VO.order;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import o2o.cache.order.OrderStatusNameMemory;
import o2o.dao.PO.order.OrderCommentInfo;
import o2o.dao.PO.order.OrderInfoExtra;
import o2o.dao.PO.order.OrderInfoGoods;
import o2o.dao.PO.order.OrderItems;
import o2o.dao.VO.hxAccount.HxAccountInfoVO;
import o2o.dao.VO.postman.CityPostmanVO;
import o2o.dao.VO.user.UserInfoVO;

import java.util.List;
import java.util.Set;

//订单信息
@Data
@Accessors(chain = true)
public class OrderInfoVO {
    @ApiModelProperty("标识")
    private Long id; // 标识
    @ApiModelProperty("订单编号")
    private String orderNo; // 订单编号
    @ApiModelProperty("聚合订单编号")
    private String parentOrderNo; // 聚合订单编号
    @ApiModelProperty("支付订单号")
    private String payOrderNo; // 支付订单号
    @ApiModelProperty("每日编号")
    private Integer preDayNo;//每日编号
    @ApiModelProperty("订单类型  1普通订单 2跑腿订单  3代购订单 4服务订单（开锁）")
    private Integer orderType = 1;//订单类型  1普通订单 2跑腿订单  3代购订单 4服务订单（开锁）
    @ApiModelProperty("订单  1 抢单大厅里的订单 2 调度订单 在订单调度优先模式下 如果是调度的订单,骑手不会看到这个订单 除非订单被调度过去")
    private Integer dispatchState = 1; // 订单  1 抢单大厅里的订单 2 调度订单 在订单调度优先模式下 如果是调度的订单,骑手不会看到这个订单 除非订单被调度过去
    @ApiModelProperty("是否投诉")
    private int isApplyComplaint = 0;// 是否投诉
    @ApiModelProperty("是否申请售后")
    private int isApplyAfterSale = 0;// 是否申请售后
    @ApiModelProperty("创业广场店铺的id")
    private Long squareShopId;  // 创业广场店铺的id
    @ApiModelProperty("店铺ID")
    private Long shopId; // 店铺ID
    @ApiModelProperty("店铺名称")
    private String shopName;//店铺名称
    @ApiModelProperty("店铺名多语言")
    private String shopNameLang;// 店铺名多语言
    @ApiModelProperty("店铺电话")
    private String shopPhone;//店铺电话
    @ApiModelProperty("店铺头像")
    private String shopImageUrl;//店铺头像
    @ApiModelProperty("店铺地址")
    private String shopAddress;//店铺地址
    @ApiModelProperty("店铺纬度")
    private Double shopLat;//店铺纬度
    @ApiModelProperty("店铺备餐时间")
    private Long shopReadyTime;//店铺备餐时间
    @ApiModelProperty("店铺经度")
    private Double shopLng;//店铺经度
    @ApiModelProperty("店铺是否自配送 0平台配送 1自配送")
    private Integer shopSelfPost;//店铺是否自配送 0平台配送 1自配送
    @ApiModelProperty("商家接单是否为系统为商家接单 1是")
    private Integer shopSureBySys;// 商家接单是否为系统为商家接单 1是
    @ApiModelProperty("系统派单 0正常订单 1系统派单并直接到骑手进行中")
    private Integer postmanSureBySys;// 系统派单 0正常订单 1系统派单并直接到骑手进行中
    @ApiModelProperty("是不是免费的商品订单")
    private Integer isFreeGoodOrder;    // 是不是免费的商品订单
    @ApiModelProperty("代理ID")
    private Long agentId; //代理ID
    @ApiModelProperty("提交订单的用户账号")
    private String username; // 提交订单的用户账号
    @ApiModelProperty("购买数量")
    private int totalCount = 0; // 购买数量(几件商品)
    @ApiModelProperty("订单总金额")
    private double totalPrice = 0; //订单总金额
    @ApiModelProperty("订单状态")
    private int orderStatus; // 订单状态
    @ApiModelProperty("订单状态")
    private String orderStatusName; // 订单状态
    @ApiModelProperty("订单状态多语言")
    private String orderStatusNameLang; // 订单状态多语言
    @ApiModelProperty("收货地址")
    private Long deliveryId; // 收货地址
    @ApiModelProperty("代理id")
    private Long agentAddressId;    // 代理id
    @ApiModelProperty("收取的配送费")
    private Double deliveryPrice;//收取的配送费
    @ApiModelProperty("原始配送费")
    private Double originalYunFei;//原始配送费
    @ApiModelProperty("原始配送费，店铺承担金额")
    private Double originalYunFeiShop;//原始配送费，店铺承担金额
    @ApiModelProperty("打包费")
    private Double packetPrice;//打包费
    @ApiModelProperty("餐具个数")
    private Integer canJuCount;//餐具个数
    @ApiModelProperty("餐具总金额")
    private Double canJuPrice;//餐具总金额
    @ApiModelProperty("付款方式")
    private String payType; // 付款方式
    @ApiModelProperty("付款方式2")
    private String payType2; // 付款方式2
    @ApiModelProperty("订单小费")
    private Double tipMoney; //
    // create by yangtk 2018/11/30
    @ApiModelProperty("店铺的环信账号")
    private String shopHxAccount; // 店铺的环信账号
    @ApiModelProperty("聚合订单 0 非聚合订单 1 聚合订单父订单  11 聚合订单子订单")
    private Integer groupState;     //
    @ApiModelProperty("是不是团购订单")
    private Integer isGroupOrder = 0;     //是不是团购订单
    @ApiModelProperty("备注")
    private String note; //备注
    @ApiModelProperty("商家订单备注")
    private String shopNote;   // 商家订单备注
    @ApiModelProperty("配送状态")
    private String postOrderStatus; //配送状态

    @ApiModelProperty("活动满减金额")
    private Double awardMoney;//活动满减金额
    @ApiModelProperty("代理补贴金额")
    private Double cityAdminAward;//代理补贴金额
    @ApiModelProperty("活动满减金额-店铺减金额")
    private Double shopAwardMoney;//活动满减金额-店铺减金额
    @ApiModelProperty("活动满减金额-平台减金额")
    private Double platformAwardMoney;//活动满减金额-平台减金额
    @ApiModelProperty("活动满减金额-代理减金额")
    private Double cityAdminAwardMoney; // 活动满减金额-代理减金额
    @ApiModelProperty("自取优惠金额")
    private Double ziQuAwardMoney;     // 自取优惠金额
    @ApiModelProperty("订单总金额（包含所有 配送费、商品总金额、满减金额未减）")
    private Double totalMoney;//订单总金额（包含所有 配送费、商品总金额、满减金额未减）
    @ApiModelProperty("商品总金额")
    private Double totalGoodsMoney;//商品总金额

    @ApiModelProperty("已经成功支付成功")
    private Integer isPaid;//已经成功支付成功

    private Integer isBuyInsurance;
    @ApiModelProperty("购买保险状态")
    private Integer insuranceStatus; // 购买保险状态
    @ApiModelProperty("是不是异常订单")
    private int isTroubleOrder = 0;  // 是不是异常订单
    //汇率和货币单位
    @ApiModelProperty("实际支付金额（订单金额1美元，如果使用的是人民币支付，则此字段是支付的金额）")
    private Double fcTotalPrice;//实际支付金额（订单金额1美元，如果使用的是人民币支付，则此字段是支付的金额）
    @ApiModelProperty("货币单位")
    private String currencyUnit;//货币单位
    @ApiModelProperty("汇率")
    private Double exchangeRate;//汇率


    //用户可以看到自己到店或自取验证码
    @ApiModelProperty("取货验证码")
    private String verifyCode;//取货验证码

    // create by yangtk 2015/10/20
    @ApiModelProperty("税费")
    private Double goodsTaxMoney; // 税费
    @ApiModelProperty("是不是折扣订单")
    private Integer isDiscountOrder;    // 是不是折扣订单
    @ApiModelProperty("打折率")
    private Double disCountRate;       // 打折率
    @ApiModelProperty("折扣金额")
    private Double discountMoney;       // 折扣金额
    @ApiModelProperty("折扣兑换码")
    private String discountExchangeCode;    // 折扣兑换码
    @ApiModelProperty("无法送达原因、商家拒绝接单原因、骑手拒绝接单原因")
    private String postFailReason;// 无法送达原因、商家拒绝接单原因、骑手拒绝接单原因
    @ApiModelProperty("可以抢单的公司ids")
    private String canGrabCompanyIds;// 可以抢单的公司ids
    @ApiModelProperty("抢单公司id")
    private Long grabCompanyId;//抢单公司id
    @ApiModelProperty("抢单公司名")
    private String grabCompanyName;// 抢单公司名
    @ApiModelProperty("是否修改过地址")
    private int isChangedAddress = 0;    // 是否修改过地址


    // 哒哒配送
    @ApiModelProperty("是不是第三方配送单")
    private Integer isOtherPost;    // 是不是第三方配送单
    @ApiModelProperty("三方配送单状态  1 下单成功 0 下单失败 2 三方取消了订单")
    private Integer otherPostState; // 三方配送单状态  1 下单成功 0 下单失败 2 三方取消了订单

    //    private String payTypeName; // 付款方式(1:网上支付，2:货到付款，3支付宝，4微信)
    @ApiModelProperty("取消订单的原因")
    private String cancelReason; // 取消订单的原因
    @ApiModelProperty("拒收的原因")
    private String rejectReason; // 拒收的原因
    @ApiModelProperty("退货的原因")
    private String refundReason; // 退货的原因
    @ApiModelProperty("商家拒绝退款原因")
    private String reBackReason; // 商家拒绝退款原因
    @ApiModelProperty("对应的ping++的支付凭证")
    private String chargeId; // 对应的ping++的支付凭证
    @ApiModelProperty("订单支付时间")
    private Long payTime; //订单支付时间
    @ApiModelProperty("创建日期")
    private Long createTime; // 创建日期
//    private Long updateTime; // 创建日期

    @ApiModelProperty("推荐公司id")
    private Long recomCompanyId;    //   推荐公司id
    @ApiModelProperty("推荐配送员id")
    private Double recomPostmanMoney;    //   推荐公司id


    //    private UserAddressVO postman;//收货地址
    @ApiModelProperty("该订单的所有商品")
    private List<OrderGoodsVO> goods;//该订单的所有商品
    @ApiModelProperty("改订单所有的店铺属性")
    private List<OrderShopSpecsVO> specs;//改订单所有的店铺属性
    @ApiModelProperty("订单标签")
    private List<OrderGoodsLabelVO> labelList;//订单标签
    @ApiModelProperty("服务项目列表")
    private List<OrderItems> itemList;//服务项目列表
    @ApiModelProperty("图片信息")
    private List<OrderInfoImageVO> imageList;//图片信息


    // create by yangtk 2018/10/18
    @ApiModelProperty("订单商品评论信息")
    private List<OrderCommentInfo> orderCommentInfos;// 订单商品评论信息

    // create by 20181221
    @ApiModelProperty("该订单的所有参与者的环信账号信息")
    private HxAccountInfoVO hxAccountInfoVO;// 该订单的所有参与者的环信账号信息

    //create by  yangtk 2018/11/14 货到付款（需要线上支付）
    private Integer isArrivePay;
    @ApiModelProperty("是不是秒杀订单")
    private Integer isFlashSaleOrder = 0;     //是不是秒杀订单
    @ApiModelProperty("使用多少积分")
    private Long integral;  //使用多少积分
    @ApiModelProperty("积分抵多少钱")
    private Double integralOffsetMoney; //积分抵多少钱
    @ApiModelProperty("活动信息")
    private List<OrderGameRulesVO> gameAward;//活动信息
    @ApiModelProperty("聚合订单 子订单情况")
    private List<OrderInfoVO> orderInfoList;// 聚合订单 子订单情况
    @ApiModelProperty("订单支付情况（分成情况)")
    private OrderPayInfoVO orderPay;//订单支付情况（分成情况)

    // 骑手多长时间可以退回
    @ApiModelProperty("设置骑手退订单时间(postmanBackOrderTime)")
    private Integer postmanBackOrderTime = 0; //  设置骑手退订单时间(postmanBackOrderTime)
    @ApiModelProperty("收货人姓名")
    private String buyer; // 收货人姓名
    @ApiModelProperty("收货人联系方式")
    private String telephone; // 收货人联系方式
    @ApiModelProperty("收货人具体地址")
    private String address; // 收货人具体地址
    @ApiModelProperty("楼号房间号")
    private String address2; //楼号房间号
    @ApiModelProperty("经度")
    private Double lng = 0d; //经度
    @ApiModelProperty("纬度")
    private Double lat = 0d; //纬度
    @ApiModelProperty("省份")
    private String province; // 省份
    @ApiModelProperty("收货市")
    private String city; //收货市
    @ApiModelProperty("区县")
    private String county; // 区县

    @ApiModelProperty("是否加急   1加急 0非加急")
    private Integer isUrgent = 0;//是否加急   1加急 0非加急
    @ApiModelProperty("是否已评价 0未评价 1已评价")
    private int isComment = 0;//是否已评价 0未评价 1已评价
    @ApiModelProperty("是否为自取  1自取，0非自取")
    private int isZiQu = 0;//是否为自取  1自取，0非自取
    @ApiModelProperty("是否预约（0立即送出，1预约）")
    private Integer isAppointment = 0;//是否预约（0立即送出，1预约）
    @ApiModelProperty("自取时间")
    private Long ziQuTime;//自取时间
    // 二级骑手相关
    @ApiModelProperty("店铺类型 0正常的 1 批发商 2 校内商家")
    private int isSeriesSaleShop = 0;//  店铺类型 0正常的 1 批发商 2 校内商家
    @ApiModelProperty("二级配送员账号")
    private String secondaryPostManUsername;//二级配送员账号
    @ApiModelProperty("二级配送员姓名")
    private String secondaryPostmanName;//二级配送员姓名
    @ApiModelProperty("二级配送员电话")
    private String secondaryPostmanPhone;//二级配送员电话
    @ApiModelProperty("二级配送员头像")
    private String secondaryPostmanImageUrl;// 二级配送员头像
    @ApiModelProperty("二级骑手接单时间")
    private Long secondaryPostmanSureTime;//二级骑手接单时间
    @ApiModelProperty("二级骑手提货时间")
    private Long secondaryPostmanPullTime;//二级骑手提货时间

    // end
    @ApiModelProperty("配送员账号")
    private String postManUsername;//配送员账号
    @ApiModelProperty("配送员姓名")
    private String postmanName;//配送员姓名
    @ApiModelProperty("配送员电话")
    private String postmanPhone;//配送员电话
    @ApiModelProperty("配送员头像")
    private String postmanImageUrl;//配送员头像

    @ApiModelProperty("客服账号")
    private String serviceUsername;//客服账号
    @ApiModelProperty("正在转单配送员账号")
    private String changePostman;//正在转单配送员账号
    @ApiModelProperty("转单时间")
    private String changePostmanTime;   // 转单时间
    @ApiModelProperty("用户催单时间")
    private Long userUrgeTime; // 用户催单时间
    @ApiModelProperty("店铺接单或拒绝时间")
    private Long shopSureTime;//店铺接单或拒绝时间
    @ApiModelProperty("店铺确认发货时间")
    private Long shopPushTime;//店铺确认发货时间
    @ApiModelProperty("配送员到达店铺时间")
    private Long postmanArrShopTime;//配送员到达店铺时间
    @ApiModelProperty("配送员确认取货时间")
    private Long postmanPullTime;//配送员确认取货时间
    @ApiModelProperty("配送员接单或抢单时间")
    private Long postmanSureTime;//配送员接单或抢单时间
    @ApiModelProperty("配送员送达或无法送达时间")
    private Long postmanFinishTime;//配送员送达或无法送达时间
    @ApiModelProperty("用户完成时间")
    private Long userFinishTime;//用户完成时间
    @ApiModelProperty("店铺完成（到店确认）时间")
    private Long shopFinishTime;//店铺完成（到店确认）时间

    @ApiModelProperty("客服接单时间")
    private Long serviceSureTime;//客服接单时间
    @ApiModelProperty("客服处理时间")
    private Long servicePushTime;//客服处理时间
    @ApiModelProperty("客服完成订单时间")
    private Long serviceFinishTime;//客服完成订单时间

    @ApiModelProperty("店铺收入金额")
    private Double shopMoney;//店铺收入金额
    @ApiModelProperty("用户申请退款  0未申请退款 1申请退款 2申请退款成功 3申请退款未通过")
    private Integer isRefundApply;//用户申请退款  0未申请退款 1申请退款 2申请退款成功 3申请退款未通过
    @ApiModelProperty("用户申请部分商品退款  0未申请退款 1申请退款 2申请退款成功 3申请退款未通过")
    private Integer isPartCancelApply; //用户申请部分商品退款  0未申请退款 1申请退款 2申请退款成功 3申请退款未通过

    @ApiModelProperty("锁匠信息")
    private CityPostmanVO postmanInfo;//锁匠信息
    @ApiModelProperty("物流信息")
    private OrderInfoExtra orderInfoExtra;//物流信息

    @ApiModelProperty("跑腿代购订单详情")
    private OtherOrderInfoVO otherOrderInfo;//跑腿代购订单详情


    // Jahnke  2018年7月11日 20:04:28
    @ApiModelProperty("设计的类型")
    private String catalogName;         // 设计的类型
    @ApiModelProperty("类型Id")
    private Long catalogId;             // 类型Id
    @ApiModelProperty("预约金支付订单号")
    private String appointOrderNo;      // 预约金支付订单号
    @ApiModelProperty("预约金支付方式")
    private String appointPayType;      // 预约金支付方式
    @ApiModelProperty("预约金支付时间")
    private Long appointPayTime;        // 预约金支付时间
    @ApiModelProperty("预约金支付完成时间（查询）")
    private Long appointPayDoneTime;    // 预约金支付完成时间（查询）
    @ApiModelProperty("预约支付总金额")
    private Double appointPayMoney;     // 预约支付总金额
    @ApiModelProperty("预约金额")
    private Double appointMoney;        // 预约金额
    @ApiModelProperty("加急金额")
    private Double urgentMoney;         // 加急金额
    @ApiModelProperty("订单完成说明")
    private String doneNote;            // 订单完成说明
    private Double otherMoney;
    // 其他花费
    @ApiModelProperty("其他花费金额说明")
    private String otherNote;           // 其他花费金额说明
    @ApiModelProperty("第二次支付金额")
    private Double erpayMoney;          // 第二次支付金额
    @ApiModelProperty("维修单预约抢单")
    private Integer appointRob;          // 维修单预约抢单

    @ApiModelProperty("订单转抢 0未转抢 1转抢中 2已转抢成功")
    private Integer isReGrab;     // 订单转抢 0未转抢 1转抢中 2已转抢成功
    @ApiModelProperty("设置的要求骑手时长(postmanOverTime)")
    private Integer agentPostmanOverTime; // 设置的要求骑手时长(postmanOverTime)
    @ApiModelProperty("设置的要求店铺时长(shopOverTime)")
    private Integer agentShopOverTime; // 设置的要求店铺时长(shopOverTime)
    @ApiModelProperty("设置的订单要求时长(orderOverTime)")
    private Integer agentOrderOverTime = 0;// 设置的订单要求时长(orderOverTime)
    @ApiModelProperty("待取订单超时时间(notTakenOrderTime)")
    private Integer agentNotTakenOrderTime = 0; //  待取订单超时时间(notTakenOrderTime)
    @ApiModelProperty("设置提前配送完成时间(postmanAdvanceTime)")
    private Integer agentPostmanAdvanceTime = 0; //  设置提前配送完成时间(postmanAdvanceTime)
    @ApiModelProperty("设置提前推送给骑手的时间(appointPostmanTime)")
    private Integer agentAppointPostmanTime = 0; //  设置提前推送给骑手的时间(appointPostmanTime)
    @ApiModelProperty("设置的订单即将超时提醒时间[支付-骑手确认送达](alertOrderTime)")
    private Integer alertOrderTime = 0; //  设置的订单即将超时提醒时间[支付-骑手确认送达](alertOrderTime)
    @ApiModelProperty("设置的骑手即将超时提醒时间[骑手接单-确认送达](alertPostmanTime)")
    private Integer alertPostmanTime = 0; //  设置的骑手即将超时提醒时间[骑手接单-确认送达](alertPostmanTime)

    @ApiModelProperty("救援地(好管家)")
    private String aId; // 救援地(好管家)
    @ApiModelProperty("备用字段1")
    private String extra1;//备用字段1
    @ApiModelProperty("备用字段2")
    private String extra2;//备用字段2
    @ApiModelProperty("备用字段3")
    private String extra3;//备用字段3
    private String createUser;  //
    private UserInfoVO userInfo;
    private String postmanId;
    private Integer size;
    private Integer current;

    private Set<Integer> orderSetStatus;
    private List<OrderChangeAddressRecordVO> orderChangeAddressRecordList;

    @ApiModelProperty("订单预计送达时间")
    private Long orderDeliveryTime;

    @ApiModelProperty("订单平台序号")
    private String sorts;

    @ApiModelProperty("订单的商品详情列表")
    private List<OrderInfoGoods> goodsList;


//    public Long getId() {
//        return id;
//    }
//
//    public void setId(Long id) {
//        this.id = id;
//    }


    public Long getOrderDeliveryTime() {
        return orderDeliveryTime;
    }

    public void setOrderDeliveryTime(Long orderDeliveryTime) {
        this.orderDeliveryTime = orderDeliveryTime;
    }

    public String getSorts() {
        return sorts;
    }

    public void setSorts(String sorts) {
        this.sorts = sorts;
    }

    public List<OrderInfoGoods> getGoodsList() {
        return goodsList;
    }

    public void setGoodsList(List<OrderInfoGoods> goodsList) {
        this.goodsList = goodsList;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public int getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }

    public double getTotalPrice() {
        return totalPrice;
    }

    public void setTotalPrice(double totalPrice) {
        this.totalPrice = totalPrice;
    }

    public int getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(int orderStatus) {
        this.orderStatus = orderStatus;
    }

    public Long getDeliveryId() {
        return deliveryId;
    }

    public void setDeliveryId(Long deliveryId) {
        this.deliveryId = deliveryId;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public String getCancelReason() {
        return cancelReason;
    }

    public void setCancelReason(String cancelReason) {
        this.cancelReason = cancelReason;
    }

    public String getRejectReason() {
        return rejectReason;
    }

    public void setRejectReason(String rejectReason) {
        this.rejectReason = rejectReason;
    }

    public String getRefundReason() {
        return refundReason;
    }

    public void setRefundReason(String refundReason) {
        this.refundReason = refundReason;
    }

    public String getChargeId() {
        return chargeId;
    }

    public void setChargeId(String chargeId) {
        this.chargeId = chargeId;
    }

    public Long getPayTime() {
        return payTime;
    }

    public void setPayTime(Long payTime) {
        this.payTime = payTime;
    }


    public List<OrderGoodsVO> getGoods() {
        return goods;
    }

    public void setGoods(List<OrderGoodsVO> goods) {
        this.goods = goods;
    }


    //     SUBMIT = 1; //用户提交订单
//     PAYED = 2; //订单已支付
//     CANCEL = 3; //用户未支付取消订单
//     PAYED_CANCEL = 4; //用户已支付取消订单
//     SHOP_SURE = 5; //商户接单
//     SHOP_REFUSED = 6; //商户拒绝接单
//     PEISONG = 7; //商户开始配送
//     POSTMAN_SURE = 8; //配送接单
//
//     OVER = 9; //订单完成


    public Double getCityAdminAward() {
        return cityAdminAward;
    }

    public OrderInfoVO setCityAdminAward(Double cityAdminAward) {
        this.cityAdminAward = cityAdminAward;
        return this;
    }

    public String getOrderStatusName() {
        orderStatusName = OrderStatusNameMemory.getInstance().getStatusName(orderStatus);
        return orderStatusName;
    }

    public void setOrderStatusName(String orderStatusName) {
        this.orderStatusName = orderStatusName;
    }

    public String getOrderStatusNameLang() {
        orderStatusNameLang = OrderStatusNameMemory.getInstance().getStatusNameLang(orderStatus);
        return orderStatusNameLang;
    }

    public void setOrderStatusNameLang(String orderStatusNameLang) {
        this.orderStatusNameLang = orderStatusNameLang;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Long getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    //
//     payByNet = 1; //网上付款
//     payByArrive = 2; //货到付款
//     payByAli = 3; //支付宝
//     payByWX = 4; //微信
//    public String getPayTypeName() {
//        payTypeName = OrderUtils.getPayTypeName(payType);
//        return payTypeName;
//    }
//
//    public void setPayTypeName(String payTypeName) {
//        this.payTypeName = payTypeName;
//    }

    public String getParentOrderNo() {
        return parentOrderNo;
    }

    public OrderInfoVO setParentOrderNo(String parentOrderNo) {
        this.parentOrderNo = parentOrderNo;
        return this;
    }

    public Long getSecondaryPostmanPullTime() {
        return secondaryPostmanPullTime;
    }

    public OrderInfoVO setSecondaryPostmanPullTime(Long secondaryPostmanPullTime) {
        this.secondaryPostmanPullTime = secondaryPostmanPullTime;
        return this;
    }

    public String getShopNameLang() {
        return shopNameLang;
    }

    public OrderInfoVO setShopNameLang(String shopNameLang) {
        this.shopNameLang = shopNameLang;
        return this;
    }

    public int getIsSeriesSaleShop() {
        return isSeriesSaleShop;
    }

    public OrderInfoVO setIsSeriesSaleShop(int isSeriesSaleShop) {
        this.isSeriesSaleShop = isSeriesSaleShop;
        return this;
    }

    public String getSecondaryPostManUsername() {
        return secondaryPostManUsername;
    }

    public OrderInfoVO setSecondaryPostManUsername(String secondaryPostManUsername) {
        this.secondaryPostManUsername = secondaryPostManUsername;
        return this;
    }

    public String getSecondaryPostmanName() {
        return secondaryPostmanName;
    }

    public OrderInfoVO setSecondaryPostmanName(String secondaryPostmanName) {
        this.secondaryPostmanName = secondaryPostmanName;
        return this;
    }

    public String getSecondaryPostmanPhone() {
        return secondaryPostmanPhone;
    }

    public OrderInfoVO setSecondaryPostmanPhone(String secondaryPostmanPhone) {
        this.secondaryPostmanPhone = secondaryPostmanPhone;
        return this;
    }

    public String getSecondaryPostmanImageUrl() {
        return secondaryPostmanImageUrl;
    }

    public OrderInfoVO setSecondaryPostmanImageUrl(String secondaryPostmanImageUrl) {
        this.secondaryPostmanImageUrl = secondaryPostmanImageUrl;
        return this;
    }

    public Long getSecondaryPostmanSureTime() {
        return secondaryPostmanSureTime;
    }

    public OrderInfoVO setSecondaryPostmanSureTime(Long secondaryPostmanSureTime) {
        this.secondaryPostmanSureTime = secondaryPostmanSureTime;
        return this;
    }


    public List<OrderInfoVO> getOrderInfoList() {
        return orderInfoList;
    }

    public OrderInfoVO setOrderInfoList(List<OrderInfoVO> orderInfoList) {
        this.orderInfoList = orderInfoList;
        return this;
    }

    public Integer getIsPartCancelApply() {
        return isPartCancelApply;
    }

    public void setIsPartCancelApply(Integer isPartCancelApply) {
        this.isPartCancelApply = isPartCancelApply;
    }


    public Double getDeliveryPrice() {
        return deliveryPrice;
    }

    public void setDeliveryPrice(Double deliveryPrice) {
        this.deliveryPrice = deliveryPrice;
    }

    public String getShopPhone() {
        return shopPhone;
    }

    public void setShopPhone(String shopPhone) {
        this.shopPhone = shopPhone;
    }

    public String getShopImageUrl() {
        return shopImageUrl;
    }

    public void setShopImageUrl(String shopImageUrl) {
        this.shopImageUrl = shopImageUrl;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getBuyer() {
        return buyer;
    }

    public void setBuyer(String buyer) {
        this.buyer = buyer;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Double getLng() {
        return lng;
    }

    public void setLng(Double lng) {
        this.lng = lng;
    }

    public Double getLat() {
        return lat;
    }

    public void setLat(Double lat) {
        this.lat = lat;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getCounty() {
        return county;
    }

    public void setCounty(String county) {
        this.county = county;
    }

    public int getIsComment() {
        return isComment;
    }

    public void setIsComment(int isComment) {
        this.isComment = isComment;
    }

    public int getIsZiQu() {
        return isZiQu;
    }

    public void setIsZiQu(int isZiQu) {
        this.isZiQu = isZiQu;
    }

    public Long getZiQuTime() {
        return ziQuTime;
    }

    public void setZiQuTime(Long ziQuTime) {
        this.ziQuTime = ziQuTime;
    }


    public String getPostManUsername() {
        return postManUsername;
    }

    public void setPostManUsername(String postManUsername) {
        this.postManUsername = postManUsername;
    }

    public String getPostmanName() {
        return postmanName;
    }

    public void setPostmanName(String postmanName) {
        this.postmanName = postmanName;
    }

    public String getPostmanPhone() {
        return postmanPhone;
    }

    public void setPostmanPhone(String postmanPhone) {
        this.postmanPhone = postmanPhone;
    }

    public String getPostmanImageUrl() {
        return postmanImageUrl;
    }

    public void setPostmanImageUrl(String postmanImageUrl) {
        this.postmanImageUrl = postmanImageUrl;
    }

    public Long getShopSureTime() {
        return shopSureTime;
    }

    public void setShopSureTime(Long shopSureTime) {
        this.shopSureTime = shopSureTime;
    }

    public Long getPostmanSureTime() {
        return postmanSureTime;
    }

    public void setPostmanSureTime(Long postmanSureTime) {
        this.postmanSureTime = postmanSureTime;
    }

    public Long getPostmanFinishTime() {
        return postmanFinishTime;
    }

    public void setPostmanFinishTime(Long postmanFinishTime) {
        this.postmanFinishTime = postmanFinishTime;
    }

    public Long getUserFinishTime() {
        return userFinishTime;
    }

    public void setUserFinishTime(Long userFinishTime) {
        this.userFinishTime = userFinishTime;
    }

    public Long getShopFinishTime() {
        return shopFinishTime;
    }

    public void setShopFinishTime(Long shopFinishTime) {
        this.shopFinishTime = shopFinishTime;
    }

    public List<OrderShopSpecsVO> getSpecs() {
        return specs;
    }

    public void setSpecs(List<OrderShopSpecsVO> specs) {
        this.specs = specs;
    }

    public String getShopAddress() {
        return shopAddress;
    }

    public void setShopAddress(String shopAddress) {
        this.shopAddress = shopAddress;
    }

    public Double getShopLat() {
        return shopLat;
    }

    public void setShopLat(Double shopLat) {
        this.shopLat = shopLat;
    }

    public Double getShopLng() {
        return shopLng;
    }

    public void setShopLng(Double shopLng) {
        this.shopLng = shopLng;
    }

    public Integer getIsUrgent() {
        return isUrgent;
    }

    public void setIsUrgent(Integer isUrgent) {
        this.isUrgent = isUrgent;
    }

    public String getVerifyCode() {
        return verifyCode;
    }

    public void setVerifyCode(String verifyCode) {
        this.verifyCode = verifyCode;
    }

    public Integer getIsPaid() {
        return isPaid;
    }

    public void setIsPaid(Integer isPaid) {
        this.isPaid = isPaid;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public Double getAwardMoney() {
        return awardMoney;
    }

    public void setAwardMoney(Double awardMoney) {
        this.awardMoney = awardMoney;
    }

    public Double getTotalMoney() {
        return totalMoney;
    }

    public void setTotalMoney(Double totalMoney) {
        this.totalMoney = totalMoney;
    }

    public String getAddress2() {
        return address2;
    }

    public void setAddress2(String address2) {
        this.address2 = address2;
    }

    public Integer getPreDayNo() {
        return preDayNo;
    }

    public void setPreDayNo(Integer preDayNo) {
        this.preDayNo = preDayNo;
    }

    public Long getShopPushTime() {
        return shopPushTime;
    }

    public void setShopPushTime(Long shopPushTime) {
        this.shopPushTime = shopPushTime;
    }

    public Long getPostmanPullTime() {
        return postmanPullTime;
    }

    public void setPostmanPullTime(Long postmanPullTime) {
        this.postmanPullTime = postmanPullTime;
    }

    public Long getAgentId() {
        return agentId;
    }

    public void setAgentId(Long agentId) {
        this.agentId = agentId;
    }

    public List<OrderGameRulesVO> getGameAward() {
        return gameAward;
    }

    public void setGameAward(List<OrderGameRulesVO> gameAward) {
        this.gameAward = gameAward;
    }

    public String getChangePostman() {
        return changePostman;
    }

    public void setChangePostman(String changePostman) {
        this.changePostman = changePostman;
    }

    public Integer getIsRefundApply() {
        return isRefundApply;
    }

    public void setIsRefundApply(Integer isRefundApply) {
        this.isRefundApply = isRefundApply;
    }

    public Double getShopMoney() {
        return shopMoney;
    }

    public void setShopMoney(Double shopMoney) {
        this.shopMoney = shopMoney;
    }

    public Double getTotalGoodsMoney() {
        return totalGoodsMoney;
    }

    public void setTotalGoodsMoney(Double totalGoodsMoney) {
        this.totalGoodsMoney = totalGoodsMoney;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Long getPostmanArrShopTime() {
        return postmanArrShopTime;
    }

    public void setPostmanArrShopTime(Long postmanArrShopTime) {
        this.postmanArrShopTime = postmanArrShopTime;
    }

    public Double getShopAwardMoney() {
        return shopAwardMoney;
    }

    public void setShopAwardMoney(Double shopAwardMoney) {
        this.shopAwardMoney = shopAwardMoney;
    }

    public Double getPlatformAwardMoney() {
        return platformAwardMoney;
    }

    public void setPlatformAwardMoney(Double platformAwardMoney) {
        this.platformAwardMoney = platformAwardMoney;
    }

    public Integer getIsAppointment() {
        return isAppointment;
    }

    public void setIsAppointment(Integer isAppointment) {
        this.isAppointment = isAppointment;
    }

    public List<OrderGoodsLabelVO> getLabelList() {
        return labelList;
    }

    public void setLabelList(List<OrderGoodsLabelVO> labelList) {
        this.labelList = labelList;
    }

    public List<OrderItems> getItemList() {
        return itemList;
    }

    public void setItemList(List<OrderItems> itemList) {
        this.itemList = itemList;
    }

    public Double getPacketPrice() {
        return packetPrice;
    }

    public void setPacketPrice(Double packetPrice) {
        this.packetPrice = packetPrice;
    }

    public String getServiceUsername() {
        return serviceUsername;
    }

    public void setServiceUsername(String serviceUsername) {
        this.serviceUsername = serviceUsername;
    }

    public Long getServiceSureTime() {
        return serviceSureTime;
    }

    public void setServiceSureTime(Long serviceSureTime) {
        this.serviceSureTime = serviceSureTime;
    }

    public Long getServicePushTime() {
        return servicePushTime;
    }

    public void setServicePushTime(Long servicePushTime) {
        this.servicePushTime = servicePushTime;
    }

    public Long getServiceFinishTime() {
        return serviceFinishTime;
    }

    public void setServiceFinishTime(Long serviceFinishTime) {
        this.serviceFinishTime = serviceFinishTime;
    }

    public String getExtra1() {
        return extra1;
    }

    public void setExtra1(String extra1) {
        this.extra1 = extra1;
    }

    public String getExtra2() {
        return extra2;
    }

    public void setExtra2(String extra2) {
        this.extra2 = extra2;
    }

    public String getExtra3() {
        return extra3;
    }

    public void setExtra3(String extra3) {
        this.extra3 = extra3;
    }

    public List<OrderInfoImageVO> getImageList() {
        return imageList;
    }

    public void setImageList(List<OrderInfoImageVO> imageList) {
        this.imageList = imageList;
    }

    public String getPostFailReason() {
        return postFailReason;
    }

    public void setPostFailReason(String postFailReason) {
        this.postFailReason = postFailReason;
    }

    public OrderPayInfoVO getOrderPay() {
        return orderPay;
    }

    public void setOrderPay(OrderPayInfoVO orderPay) {
        this.orderPay = orderPay;
    }

    public CityPostmanVO getPostmanInfo() {
        return postmanInfo;
    }

    public void setPostmanInfo(CityPostmanVO postmanInfo) {
        this.postmanInfo = postmanInfo;
    }
//
//    public Long getUpdateTime() {
//        return updateTime;
//    }
//
//    public void setUpdateTime(Long updateTime) {
//        this.updateTime = updateTime;
//    }


    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public OrderInfoExtra getOrderInfoExtra() {
        return orderInfoExtra;
    }

    public void setOrderInfoExtra(OrderInfoExtra orderInfoExtra) {
        this.orderInfoExtra = orderInfoExtra;
    }

    public String getCatalogName() {
        return catalogName;
    }

    public void setCatalogName(String catalogName) {
        this.catalogName = catalogName;
    }

    public Long getCatalogId() {
        return catalogId;
    }

    public void setCatalogId(Long catalogId) {
        this.catalogId = catalogId;
    }

    public String getAppointOrderNo() {
        return appointOrderNo;
    }

    public void setAppointOrderNo(String appointOrderNo) {
        this.appointOrderNo = appointOrderNo;
    }

    public String getAppointPayType() {
        return appointPayType;
    }

    public void setAppointPayType(String appointPayType) {
        this.appointPayType = appointPayType;
    }

    public Long getAppointPayTime() {
        return appointPayTime;
    }

    public void setAppointPayTime(Long appointPayTime) {
        this.appointPayTime = appointPayTime;
    }

    public Long getAppointPayDoneTime() {
        return appointPayDoneTime;
    }

    public void setAppointPayDoneTime(Long appointPayDoneTime) {
        this.appointPayDoneTime = appointPayDoneTime;
    }

    public Double getAppointPayMoney() {
        return appointPayMoney;
    }

    public void setAppointPayMoney(Double appointPayMoney) {
        this.appointPayMoney = appointPayMoney;
    }

    public Double getAppointMoney() {
        return appointMoney;
    }

    public void setAppointMoney(Double appointMoney) {
        this.appointMoney = appointMoney;
    }

    public Double getUrgentMoney() {
        return urgentMoney;
    }

    public void setUrgentMoney(Double urgentMoney) {
        this.urgentMoney = urgentMoney;
    }

    public String getDoneNote() {
        return doneNote;
    }

    public void setDoneNote(String doneNote) {
        this.doneNote = doneNote;
    }

    public Double getOtherMoney() {
        return otherMoney;
    }

    public void setOtherMoney(Double otherMoney) {
        this.otherMoney = otherMoney;
    }

    public String getOtherNote() {
        return otherNote;
    }

    public void setOtherNote(String otherNote) {
        this.otherNote = otherNote;
    }

    public Double getErpayMoney() {
        return erpayMoney;
    }

    public OrderInfoVO setErpayMoney(Double erpayMoney) {
        this.erpayMoney = erpayMoney;
        return this;
    }

    public String getaId() {
        return aId;
    }

    public OrderInfoVO setaId(String aId) {
        this.aId = aId;
        return this;
    }

    public Integer getCanJuCount() {
        return canJuCount;
    }

    public void setCanJuCount(Integer canJuCount) {
        this.canJuCount = canJuCount;
    }

    public Double getCanJuPrice() {
        return canJuPrice;
    }

    public void setCanJuPrice(Double canJuPrice) {
        this.canJuPrice = canJuPrice;
    }

    public String getCurrencyUnit() {
        return currencyUnit;
    }

    public void setCurrencyUnit(String currencyUnit) {
        this.currencyUnit = currencyUnit;
    }

    public Double getExchangeRate() {
        return exchangeRate;
    }

    public void setExchangeRate(Double exchangeRate) {
        this.exchangeRate = exchangeRate;
    }


    public Double getFcTotalPrice() {
        return fcTotalPrice;
    }

    public void setFcTotalPrice(Double fcTotalPrice) {
        this.fcTotalPrice = fcTotalPrice;
    }

    public Integer getAppointRob() {
        return appointRob;
    }

    public void setAppointRob(Integer appointRob) {
        this.appointRob = appointRob;
    }

    public Integer getShopSelfPost() {
        return shopSelfPost;
    }

    public void setShopSelfPost(Integer shopSelfPost) {
        this.shopSelfPost = shopSelfPost;
    }

    public Double getOriginalYunFeiShop() {
        return originalYunFeiShop;
    }

    public void setOriginalYunFeiShop(Double originalYunFeiShop) {
        this.originalYunFeiShop = originalYunFeiShop;
    }

    public Double getOriginalYunFei() {
        return originalYunFei;
    }

    public void setOriginalYunFei(Double originalYunFei) {
        this.originalYunFei = originalYunFei;
    }

    public void setGoodsTaxMoney(Double goodsTaxMoney) {
        this.goodsTaxMoney = goodsTaxMoney;
    }

    public Double getGoodsTaxMoney() {
        return goodsTaxMoney;
    }


    public List<OrderCommentInfo> getOrderCommentInfos() {
        return orderCommentInfos;
    }

    public void setOrderCommentInfos(List<OrderCommentInfo> orderCommentInfos) {
        this.orderCommentInfos = orderCommentInfos;
    }

    public String getShopHxAccount() {
        return shopHxAccount;
    }

    public void setShopHxAccount(String shopHxAccount) {
        this.shopHxAccount = shopHxAccount;
    }

    public Integer getIsArrivePay() {
        return isArrivePay;
    }

    public void setIsArrivePay(Integer isArrivePay) {
        this.isArrivePay = isArrivePay;
    }


    public OtherOrderInfoVO getOtherOrderInfo() {
        return otherOrderInfo;
    }

    public void setOtherOrderInfo(OtherOrderInfoVO otherOrderInfo) {
        this.otherOrderInfo = otherOrderInfo;
    }

    public Double getTipMoney() {
        return tipMoney;
    }

    public void setTipMoney(Double tipMoney) {
        this.tipMoney = tipMoney;
    }


    public String getPayOrderNo() {
        return payOrderNo;
    }

    public void setPayOrderNo(String payOrderNo) {
        this.payOrderNo = payOrderNo;
    }

    public Integer getIsReGrab() {
        return isReGrab;
    }

    public void setIsReGrab(Integer isReGrab) {
        this.isReGrab = isReGrab;
    }


    public Long getIntegral() {
        return integral;
    }

    public OrderInfoVO setIntegral(Long integral) {
        this.integral = integral;
        return this;
    }

    public Double getIntegralOffsetMoney() {
        return integralOffsetMoney;
    }

    public OrderInfoVO setIntegralOffsetMoney(Double integralOffsetMoney) {
        this.integralOffsetMoney = integralOffsetMoney;
        return this;
    }

    public HxAccountInfoVO getHxAccountInfoVO() {
        return hxAccountInfoVO;
    }

    public void setHxAccountInfoVO(HxAccountInfoVO hxAccountInfoVO) {
        this.hxAccountInfoVO = hxAccountInfoVO;
    }


}
